Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 329368fa27fc980a3da2d9cca6d5f437b4b46f38


Parents : fa7ce67
Author : Mark Qvist <bc7291552be7a58f361522990465165c>
Date : 2026-05-21T16:28:12+02:00

Sanitize names in join/part messages

Changes

1 files changed, 1 insertions(+), 0 deletions(-)


Diff

diff --git a/nomadnet/ui/textui/Channels.py b/nomadnet/ui/textui/Channels.py
index 3b2e3b1..a40ca5c 100644
--- a/nomadnet/ui/textui/Channels.py
+++ b/nomadnet/ui/textui/Channels.py
@@ -1178,6 +1178,7 @@ def _message_widget(app, hub, m, link_delegate=None):
if m.kind == "system":
evt_icon = g["arrow_l"] if m.text.endswith(" left") else g["arrow_r"]
spans, has_links = _body_markup(m.text or "", body_attr="irc_system", own_nick=own_nick)
+ if m.text.endswith(" left") or m.text.endswith(" joined"): spans = [(s[0], sanitize_name(s[1])) for s in spans]
markup = [_ts_prefix(m.ts), ("irc_system", evt_icon+" ")] + spans
final_widget = _wrap_text(markup, link_delegate if has_links else None)
final_widget.msg = m


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────